package br.usp.fsi.webservice;

import java.sql.SQLException;
import java.util.TreeSet;

import br.usp.fsi.conexoes.FabricaDeConexoes;
import br.usp.fsi.dao.EmpresaDao;
import br.usp.fsi.entity.Empresa;
import br.usp.fsi.entity.Sessao;
import br.usp.fsi.entity.Usuario;
import br.usp.fsi.exception.NotFoundException;

public class ControladorDeLogin {

	private static TreeSet<Sessao> sessoes = new TreeSet<Sessao>();

	public static Sessao logar(Usuario usuario) throws NotFoundException,
			SQLException {
		Sessao novaSessao = null;
		EmpresaDao dao = new EmpresaDao();
		Empresa empresa = dao.getObject(FabricaDeConexoes.obterConexao(),
				usuario.getIdEmpresa());

		if (sessoes.isEmpty()) {
			novaSessao = new Sessao(1, usuario, empresa);
		} else {
			novaSessao = new Sessao(sessoes.last().getIdSessao() + 1, usuario,
					empresa);
		}
		
		sessoes.add(novaSessao);
		return novaSessao;
	}

	public static boolean deslogar(Long idSessao) {
		Sessao sessaoARemover = new Sessao(idSessao, null, null);
		return sessoes.remove(sessaoARemover);
	}

}
